package 文件io;
import java.io.*;
/*
  字符串流 以一个字符串为源，创建一个字符流
  主要用法:在web开发中，从服务器获取的字符串(xml、json等)，需要把这些字符串构建成字符串流
         调用第三方数据解析器解析
*/
public class 字符串流
{
	public static void main(String[] args){
		stringread();
		stringwrite();
	}
	//字符串输入流
	private static void stringread(){
		String str="Welcome to China Good luck你好啊";//以空格分割单词
		StringReader sr=new StringReader(str);
		//标记流
		StreamTokenizer st=new StreamTokenizer(sr);
		int count=0;
		/*
		 ttype属性
		 在调用 nextToken 方法之后，此字段将包含刚读取的标记的类型。对于单个字符标记，其值是转换为一个整数的单一字符。对于引用的字符串标记，其值是引号字符。否则，其值是下列值之一：
		 TT_WORD 指示该标记是一个文字。
		 TT_NUMBER 指示该标记是一个数字。
		 TT_EOL 指示已读到行的末尾。如果已使用参数 true 调用 eolIsSignificant 方法，则该字段只能使用此值。
		 TT_EOF 指示已到达输入流的末尾。
		 此字段的初始值为 -4。
		 */
		while(st.ttype!=StreamTokenizer.TT_EOF){
			try
			{
				if (st.nextToken() == StreamTokenizer.TT_WORD)
				{
					count++;
				}
			}
			catch (IOException e)
			{}
		}
		sr.close();
		System.out.println("count="+count);
	}
	private static void stringwrite(){
		StringWriter sw=new StringWriter();
		sw.append('5');
		sw.append('a');
		System.out.println(sw.toString());
	}
}
